home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 7
/
Apprentice-Release7.iso
/
Source Code
/
Pascal
/
Snippets
/
PNL Libraries
/
MyTEUtils.p
< prev
next >
Wrap
Text File
|
1997-01-06
|
2KB
|
85 lines
unit MyTEUtils;
interface
uses
TextEdit;
function TEEditMenuEnabled (te: TEHandle; static: boolean; maxsize: longint): boolean;
procedure TESetEditMenuItem (te: TEHandle; static: boolean; maxsize: longint; item: integer);
function TEDoEditMenu (te: TEHandle; static: boolean; maxsize: longint; item: integer): boolean;
implementation
uses
Types, Scrap, Windows, Menus, Quickdraw,
MyTypes, MyMenus;
function TEEditMenuEnabled (te: TEHandle; static: boolean; maxsize: longint): boolean;
var
i: integer;
begin
for i := EMundo to EMselectall do begin
TESetEditMenuItem(te, static, maxsize, i);
end;
TEEditMenuEnabled := GetMenuHandle(M_Edit)^^.enableFlags <> 0;
end;
procedure TESetEditMenuItem (te: TEHandle; static: boolean; maxsize: longint; item: integer);
var
offset: longint;
begin
case item of
EMundo:
SetIDItemEnable(M_Edit, item, false);
EMcut, EMclear:
SetIDItemEnable(M_Edit, item, not static & (te^^.selStart < te^^.selEnd)); { Can cut,clear if there is a selection }
EMcopy:
SetIDItemEnable(M_Edit, item, te^^.selStart < te^^.selEnd); { Can copy iff there is a selection }
EMpaste:
SetIDItemEnable(M_Edit, item, not static & (GetScrap(nil, 'TEXT', offset) > 0) & (TEGetScrapLength + (te^^.teLength - (te^^.selEnd - te^^.selStart)) < maxsize));
EMselectall:
SetIDItemEnable(M_Edit, item, te^^.teLength > 0); { Can select all iff there is something to select }
otherwise begin
{ do nothing }
end;
end;
end;
function TEDoEditMenu (te: TEHandle; static: boolean; maxsize: longint; item: integer): boolean;
var
loe, oe: OSErr;
begin
{$unused(static, maxsize)}
TEDoEditMenu := true;
case item of
EMcopy: begin
TECopy(te);
loe := ZeroScrap;
oe := TEToScrap;
TEDoEditMenu := false;
end;
EMselectall: begin
SetPort(FrontWindow);
TESetSelect(0, maxLongInt, te);
TEDoEditMenu := false;
end;
EMcut: begin
TECut(te);
loe := ZeroScrap;
oe := TEToScrap;
end;
EMclear: begin
TEDelete(te);
end;
EMpaste: begin
oe := TEFromScrap;
TEPaste(te);
end;
otherwise begin
{ do nothing }
end;
end;
end;
end.